#!/bin/bash
#功能：启停service
#chkconfig --list
#等级0表示：表示关机
#等级1表示：单用户模式root权限,用于系统维护禁止远程登陆,就像Win下的安全模式
#等级2表示：无网络连接的多用户命令行模式
#等级3表示：有网络连接的多用户命令行模式,即默认的命令行状态
#等级4表示：不可用
#等级5表示：带图形界面的多用户模式,即默认的图形化状态
#等级6表示：重新启动
#注：服务目录：/etc/rc.d/init.d
#添加流程：
#1.添加服务名称：chkconfig --add <服务名>
#2.添加启动级别：chkconfig --level <默认级别:35> <服务名> <状态:on/off>
#3.
#删除服务：chkconfig --del <服务名>


#默认级别
#DEF_LEVEL='--level 2345'
BAK_FILE=/etc/chkconfig.init.bak
######################################################################################
if [ ! -f $BAK_FILE ];then chkconfig --list >$BAK_FILE;fi
chkconfig --list
while true
do
echo '
-----------------------------------------------------------------------
1.启用服务
2.停用服务
3.查看服务
0.退出

语法：				<序列> <服务>
范例：
启动mysql服务：			1 mysql,ftp 	
停止mysql服务	：		2 mysql 		
查看mysql服务：			3 mysql
查看全部服务：			3 
'
read -p "输入操作：" KEY
if [ -z "$KEY" ];then continue;fi
KEY1=`echo $KEY |awk  '{print $1}'`
KEY2=`echo $KEY |awk  '{print $2}'`
KEY3=`echo $KEY |awk  '{print $3}'`
KEY_NUM=`echo $KEY|wc -w`


case $KEY1 in
	1)
	if [ $KEY_NUM -eq 1  ];then echo "TIP:请输入操作参数！";continue;fi
	STATUS=on
	SER=`echo $KEY2|tr ","  "\n"`
	for i in `echo $SER`
	do
		chkconfig --list|grep "$i" >/dev/null
		if [ ! $? -eq 0 ];then echo "TIP:${i}服务不存在。";continue;fi
		chkconfig ${DEF_LEVEL} $i $STATUS
		if [ $? -eq 0 ];then echo "Success,${i}启动服务${DEF_LEVEL}级别成功。";else echo "Error!${i}启动服务${DEF_LEVEL}级别失败!";fi
	done
	;;

	2)
	if [ $KEY_NUM -eq 1  ];then echo "TIP:请输入操作参数！";continue;fi
	STATUS=off
	SER=`echo $KEY2|tr ","  "\n"`
	for i in `echo $SER`
	do
		chkconfig --list|grep "$i" >/dev/null
		if [ ! $? -eq 0 ];then echo "TIP:${i}服务不存在。";continue;fi
		chkconfig ${DEF_LEVEL} $i $STATUS
		if [ $? -eq 0 ];then echo "Success,${i}停用服务${DEF_LEVEL}级别成功。";else echo "Error!${i}停用服务${DEF_LEVEL}级别失败!";fi
	done
	;;

	3)
	if [[ $KEY_NUM -eq 1 && $KEY -eq 3 ]];then chkconfig --list;continue;fi
	SER=`echo $KEY2|tr ","  "\n"`
	for i in `echo $SER`
	do
		chkconfig --list|grep "$i" >/dev/null
		if [ ! $? -eq 0 ];then echo "TIP:${i}服务不存在。";continue;fi
		chkconfig --list|grep $i
	done

	;;


	0)
	echo "退出！"
	exit
	;;


	*)
	echo "输入错误"
	;;
esac
done



